/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package chameleon.model.NuGatStructure.strategy;

import chameleon.model.NuGatStructure.game.GamePlayer;
import chameleon.model.NuGatStructure.prop.PropGame;
import chameleon.model.NuGatStructure.utils.Node;
import chameleon.model.NuGatStructure.fsm.GameBddFsm;
import chameleon.model.NuGatStructure.bdd.Bdd;
import chameleon.gameSolver.NuGat.NuGatInterface;
import chameleon.model.NuGatManager.Strategy.PreImage;
import com.sun.jna.Pointer;

/**
 *
 * @author simon
 */
public class AvoidTargetStrategy extends ReachAvoidStrategy {
    
    public AvoidTargetStrategy(GameBddFsm fsm,
            GamePlayer player,
            int reverseInitialQuantifiers,
            Bdd goal,
            Bdd winningStates,
            Bdd trans,
            PreImage preImage,
            PropGame prop,
            NuGatInterface nugat){
        super(fsm,player,reverseInitialQuantifiers,goal,winningStates,trans,
                preImage,prop,nugat);
    }
    
    @Override
    public Node getLtlSpec(){
        return new Node(
                    nugat_.OP_GLOBAL, new Node(
                            nugat_.NOT,new Node(prop_.getExprCore().ptr(),nugat_),
                                       new Node(Pointer.NULL,nugat_),
                                       nugat_),
                            new Node(Pointer.NULL,nugat_),nugat_);
    }
}
